 var store_cuenta;
 var store_periodos;
Ext.onReady(function()
{
    
     store_cuenta = new X.store.Json({
        url : '/presupuesto/ajax-cuenta',
        fields : [
            'codigoCuenta',
            'montoInicial',
            'montoActual',
            'montoEjecutado',
            'periodo',
            'nombreDepartamento',
            'codigoDepartamento',
            'codigoCentroCostos',
            'nombreRubro',
            'codigoRubro'
        ]
     });	
     
     store_periodos=new X.store.Json({
         url : '/presupuesto/ajax-periodos',
         fields : [
             'periodo',
         ],
         autoLoad:true
      });	
  
     var checkboxSel = new Ext.grid.CheckboxSelectionModel({ singleSelect:false   });

      new X.form.FormPanel({

        title            : 'Importar Presupuesto',
        submitButtonText : 'Importar',
        returnButtonText : 'Cancelar',
        submitUrl        : '/presupuesto/ajax-importar',
        returnUrl        : '/presupuesto/listar',
        width            : 900,
        labelWidth       : 85,
     
        items:[
      
            new X.field.Hidden({id:'codigoPresupuesto'}),
            new X.field.Hidden({id:'CuentasRows'}),
            new X.field.Number({fieldLabel:'Presupuesto', id:'periodopresupuesto'}),
            new X.grid.GridEditor({

                        id       : 'Cuentas',
                        title    : 'Lista de Cuentas',
                        height   : 393,
                        width    : 850,
                        store    : store_cuenta,
                        useTbar  : false,
                        sm       : checkboxSel,

                        columns:[
                        checkboxSel,
                        new X.column.Hidden  ({header: 'Codigoc',               dataIndex: 'codigoCuenta',          width: 110}),
                        new X.column.Hidden  ({header: 'Codigod',               dataIndex: 'codigoRubro',           width: 110}),
                        new X.column.Hidden  ({header: 'Codigor',               dataIndex: 'codigoDepartamento',    width: 110}),
                        new X.column.Hidden  ({header: 'Codigocc',              dataIndex: 'codigoCentroCostos',    width: 110}),
                        new X.column.Money   ({header: 'Monto Inicial',         dataIndex: 'montoInicial',           width: 120}),
                        new X.column.Money   ({header: 'Monto Actual',          dataIndex: 'montoActual',          width: 70, editable:false}),
                        new X.column.Money   ({header: 'Monto Ejecutado',       dataIndex: 'montoEjecutado',          width: 70, editable:false}),
                        new X.column.Number  ({header: 'Presupuesto',           dataIndex: 'periodo',           width: 110, editable:false}),
                        new X.column.Text    ({header: 'Departamento',          dataIndex: 'nombreDepartamento',              width: 200, editable:false}),
                        new X.column.Text    ({header: 'Rubro',                dataIndex:  'nombreRubro',   width: 225, editable:false})
                        ]

               })


            ],
       listeners:{beforeaction : function(  form,  action ){
      
             var array= new Array();
             array = checkboxSel.getSelections();
            
             var periodo = Ext.getCmp('periodopresupuesto').getValue();
             
             try{
	             for (var i=0;i<store_periodos.getCount();i++){
	                 rec = store_periodos.getAt(i);
	                 if (periodo == rec.get('periodo')){
	                	 X.msg.Failure('El presupuesto se solapa con algun presupuesto anterior');
	                	 return false;
	                 }
	             }
             }catch (e){
            	 alert(e.messages);	
             }
    
             if(array.length==0){
                 X.msg.Failure('Debe seleccionar al menos una cuenta');
                 return false;
             }
              store_cuenta.removeAll();
              for (var i=0;i<array.length;i++)
              {
                   store_cuenta.add(array[i]);
              }
         }
       }
        
    });

      
});
